Compiler Options

 A few options affect how the compiler itself functions. As with the other
 options, you can use these with either the '-' hyphen or the '/' slash
 format. Remember to separate the options with at least one blank.

 Remarque : Les options du compilateur en ligne de commande ne font pas de
 diffrence entre majuscules et minuscules.


 With no value (switches) :
  B                     Build all units
  H                     Output hint messages
  M                     Make modified units
  P                     Look for 8.3 file names also
  Q                     Quiet compile
  W                     Output warning messages
  Z                     Disable implicit compilation option

 Single value (last setting override others)
  E<path>               EXE output directory
  N<path>               DCU output directory
  LE<path>              BPL output directory (package files)
  LN<path>              DCP output directory (package sources)
  F<offset>             Find errorneous statement at offset
  K<addr>               Set image base addr
  TX<ext>               change compiled file extension

 Multiple values (act as switches)
  C[C|G]                application type ('C' : console, 'G' : GUI)
  G[D|P|S]              output map file
  J                     Generate C .obj file
  JP(N,E)*              Generate C++ .obj file
  V[N|R]                Add Turbo Debugger infos
 
 Lists
  A(<unit>=<alias>;)*   Set unit alias
  D(<conditional>;)*    Define conditionals
  I<path>               Include directories
  LU<package>           Link using runtime package
  O<path>               Object files (.obj) directories
  R<path>               Resource directories
  U<path>               Unit directories
  
 Directives
  $<directive>          Compiler directives


 Remarque : La compilation depuis la ligne de commande sans une option de
  construction explicite (-M ou -B) effectue une compilation en mmoire et
  une liaison sans rien crire sur disque si ce n'est l'unit de compilation
  spcifie (unit, programme, bibliothque ou paquet). Par exemple:

    dcc <fichier-sans-extension>

  Cre une reprsentation binaire uniquement pour le fichier spcifi; il n'y
  a pas de fichiers dcu ou dpu crits sur disque pour les units utilises.



Options de recherche dans les rpertoires Delphi

 Plusieurs options vous permettent de spcifier les rpertoires utiliss
 par le compilateur en ligne de commande: inclusion (-I), entre dcu
 (chemin de recherche de l'unit, -U), ressource (-R), objet (-O),
 destination excutable et dcu (-E), et destination dcu (-N).

 Pour certaines options, vous pouvez spcifier plusieurs rpertoires spars
 par des points-virgules. La ligne de commande suivante, par exemple, demande
  DCC32 de rechercher les fichiers d'inclusion dans C:\DELPHI\INCLUDE puis
 dans D:\INC, aprs les avoir recherchs dans le rpertoire courant:

    dcc32 MONTRUC -IC:\DELPHI\INCLUDE;D:\INC

 Si vous spcifiez plusieurs fois la mme directive, les rpertoires
 s'ajoutent. Ainsi,

    dcc32 MONTRUC -IC:\DELPHI\INCLUDE -ID:\INC

 quivaut au premier exemple.

-E  Option pour le rpertoire de l'excutable

  Cette option vous permet d'indiquer au compilateur en ligne de commande o
  placer le fichier excutable qu'il cre. Elle prend comme argument le
  chemin d'accs  un rpertoire:

    dcc32 MONTRUC -EC:\DELPHI\BIN

  Vous ne pouvez spcifier qu'un seul rpertoire d'excutable; il est
  galement utilis pour les fichiers .dll. L'option -E n'affecte pas
  l'emplacement des fichiers .bpl (paquets).

  Si cette option n'est pas fournie, le compilateur en ligne de commande cre
  les fichiers excutables dans les mmes rpertoires que les fichiers source
  correspondants.


-LE Option pour le rpertoire des paquets

  Cette option vous permet d'indiquer au compilateur en ligne de commande o
  placer le fichier qu'il cre lorsqu'il compile un paquet. La syntaxe est
  identique  celle de l'option -E.


-LN Option pour le rpertoire des informations de symboles des paquets

  Cette option vous permet d'indiquer au compilateur en ligne de commande o
  placer le fichier .dcp (infos sur les symboles du paquet) qu'il cre
  lorsqu'il compile un paquet. La syntaxe est identique  celle de
  l'option -E.


-N  Option pour le rpertoire des units compiles

  Cette option vous permet d'indiquer au compilateur en ligne de commande o
  placer le fichier .dcu (unit compile) qu'il cre lorsqu'il compile une
  unit. La syntaxe est identique  celle de l'option -E.


-I  Option pour les rpertoires d'inclusion

  Delphi gre les fichiers d'inclusion  l'aide de la directive de compilation
  {$I nomfichier}. L'option -I permet de spcifier une liste de rpertoires
  pour la recherche des fichiers d'inclusion.


-U  Option pour les rpertoires des units

  Quand vous compilez un programme utilisant des units, le compilateur en
  ligne de commande cherche dans le rpertoire en cours les fichiers source
  et les fichiers des units compiles. Avec l'option -U, vous pouvez
  spcifier des rpertoires supplmentaires pour la recherche des units.


-R  Option pour les rpertoires des ressources

  Le compilateur en ligne de commande recherche les fichiers ressource dans
  le rpertoire en cours. L'option -R vous permet d'indiquer des rpertoires
  supplmentaires o dcc32 recherchera les fichiers ressource.


-O  Option pour les rpertoires des fichiers objet

  Avec les directives de compilation {$L nomfichier}, vous pouvez lier au
  programme des fichiers .OBJ contenant du code machine cr par des
  assembleurs externes ou d'autres compilateurs, tels que Borland C++.
  L'option -O vous permet de spcifier une liste de rpertoires pour la
  recherche de ces fichiers .OBJ.



Options de travail du compilateur

-M  Option Make

  Le compilateur en ligne de commande intgre une logique MAKE qui facilite
  la maintenance d'un projet. L'option -M demande au compilateur en ligne de
  commande de vrifier toutes les units dont dpend le fichier en cours de
  compilation. L'utilisation de cette option rduit les temps de compilation.

  Une unit est recompile dans les conduitions suivantes:
  - Son fichier source a t modifi depuis la cration du fichier
   de l'unit.
  - Un fichier inclus par une directive $I, un fichier .OBJ li par une
   directive $L, ou un fichier .res rfrenc par une directive $R, est
   plus rcent que le fichier de l'unit.
  - La partie interface d'une unit rfrence par une instruction uses a
   t modifie.

  Les units compiles avec l'option -Z sont exclues de la logique make.


-B  L'option Tout construire

  Au lieu de vous en remettre  l'option -M pour dterminer ce qui doit tre
  mis  jour, vous pouvez demander au compilateur en ligne de commande de
  mettre  jour toutes les units dont votre programme dpend, en utilisant
  l'option -B. Les options -M et -B s'excluent mutuellement. L'option -B est
  moins rapide que l'option -M et n'est gnralement pas ncessaire.


-F  Option de recherche d'erreur

  Quand une erreur d'excution survient, le programme affiche le code de
  l'erreur et l'adresse  laquelle elle s'est produite. En spcifiant cette
  adresse dans -Fadresse, vous pouvez savoir quelle instruction du code
  source a provoqu l'erreur,  condition que votre programme et vos units
  aient t compils avec la gnration des informations de dbogage active
  (directive de compilation $D).

  Pour que le compilateur en ligne de commande puisse localiser l'erreur,
  vous devez recompiler le programme avec, en plus de l'option -F, exactement
  les mmes options que vous aviez utilises lors de la compilation
  prcdente.

  Comme nous l'avons dit plus haut, pour que le compilateur en ligne de
  commande puisse localiser les erreurs d'excution, vous devez absolument
  compiler votre programme et les units qu'il utilise avec l'option de
  gnration des informations de dbogage active. Cette option est active
  par dfaut, mais si vous l'avez dsactive  l'aide de la directive de
  compilation {$D-} ou de l'option -$D-, le compilateur en ligne de
  commande sera incapable de localiser les erreurs d'excution.


-J  Option de gnration d'un fichier objet C

  L'utilisation de l'option -J gnre un fichier objet C (.obj) en plus
  des fichier .dcu de chaque unites


-JP Option de gnration d'un fichier objet C++

  L'utilisation de l'option -JP gnre un fichier objet C++ (.obj) en plus
  des fichier .dcu de chaque unites. Deux options avancees sont
  disponibles 'N' et 'E', elles peuvent etre utilisees en meme temps.
  
  -JPN : Inclure les espaces de nommage dans le fichier .obj
  -JPE : Exporter tous les symboles


-LU Option d'utilisation de paquets

  Utilisez l'option -LU pour donner la liste de paquets d'excution
  supplmentaires que vous voulez utiliser dans l'application  compiler.
  Les paquets d'excution dj indiqus dans la bote de dialogue Options
  de projet n'ont pas besoin d'tre rpts sur la ligne de commande.


-P Recherche les noms de fichiers 8.3

  Search for a unit by its short (8.3) filename, in addition to its long
  name. Use this options if the files are stored on a filesytem that does
  not support long filenames, such as an old NetWare file server.


-Z Option de dsactivation de la compilation implicite

  L'option -Z empche la recompilation implicite ultrieure des paquets et des
  units. Pour les paquets, c'est quivalent  placer {$IMPLICITBUILD OFF}
  dans le fichier .dpk. Utilisez -Z lorsque vous compilez des paquets qui
  fournissent des fonctionnalits de bas niveau, qui ne changent pas souvent
  entre deux compilations ou dont le code source ne sera pas distribu.


-TX Option d'extension du fichier cible

  L'option -TX permet de remplacer l'extension par dfaut du fichier cr.
  Par exemple:

    dcc32 MONTRUC -TXSYS

  gnre un fichier compil nomm MONTRUC.SYS.


-Q  Option de compilation silencieuse

  L'option -Q supprime l'affichage des noms de fichiers et des numros de
  lignes au cours de la compilation. Ainsi, lorsque le compilateur en ligne
  de commande est utilis en mode muet; seuls les messages de dmarrage et
  les statistiques de fin de compilation apparaissent. Les ventuelles
  erreurs sont affiches.


-W  Option d'affichage d'avertissement

  L'option -W active l'affichage des avertissements (TOUT les avertissements)
  lors de la compilation. Il est possible d'affiner le comportement en
  desactivant certaines categories au moyen de drapeau supplementaires;
  syntaxe: -W-<drapeau>

     <drapeau>                   <message etouffe>
   -SYMBOL_DEPRECATED           symbole deprecie (obsolete)
   -SYMBOL_LIBRARY              symbole de bibliotheque (??)
   -SYMBOL_PLATFORM             symbole specifique a une plate forme
   -UNIT_LIBRARY                unite bibliotheque (??)
   -UNIT_PLATFORM               unite specifique a une plate forme
   -UNIT_DEPRECATED             unite deprecie (obsolete)
   -HRESULT_COMPAT              integer et HRESULT melanges.
  
  De nombreuses fonctions renvoient une valeur HRESULT pour indiquer le
  succs ou l'chec d'une opration. Ce type de donnes, initialement
  dfini pour la plate-forme Win32, est dsormais utilis par de nombreuses
  API diffrentes excutes sur diverses plates-formes.

   -HIDING_MEMBER               la redeclaration de symbole cache un membre
                                 de la classe de base
   -HIDDEN_VIRTUAL              la methode cache une methode virtuelle du
                                 type de base
   -GARBAGE                     presence de texte apres le 'END.' final
   -BOUNDS_ERROR                l'expression constante a viole les limites
                                 de sous etendue
   -ZERO_NIL_COMPAT             constante 0 convertie a NIL
   -STRING_CONST_TRUNCED        constante chaine tronquee
   -FOR_LOOP_VAR_VARPAR         la variable de boucle for ne peut etre
                                 transmise comme parametre var
   -TYPED_CONST_VARPAR          la constante ne peut etre transmise comme
                                 parametre var
   -ASG_TO_TYPED_CONST          affectation a la constante typee
   -CASE_LABEL_RANGE            libelle 'case of' en dehors de l'etendue
                                 'case'
   -FOR_VARIABLE                la variable de controle de la boucle for doit
                                 etre une variable locale simple
   -CONSTRUCTING_ABSTRACT       construction d'instance contenant une methode
                                 abstraite
   -COMPARISON_FALSE            comparaison toujours evaluee a false
                                 (if (0 > 1) ...)
   -COMPARISON_TRUE             comparaison toujours eveluee a true
                                 (if (0 < 1) ...)
   -COMPARING_SIGNED_UNSIGNED   comparaison de types signes et non signes
                                 - operandes elargis
   -COMBINING_SIGNED_UNSIGNED   combinaison de types signes et non signes
                                 - operandes elargis
   -UNSUPPORTED_CONSTRUCT       fonctionnalit de langage non prise en charge
   -FILE_OPEN                   fichier introuvable (??)
   -FILE_OPEN_UNITSRC           unite ou equivalent binaire (.dcu) non
                                 trouve (??)
   -BAD_GLOBAL_SYMBOL           definition de symbole global incorrect dans
                                 le fichier objet
   -DUPLICATE_CTOR_DTOR         le constructeur / destructeur duplique avec
                                 des parametres identiques sera inaccessible
                                 via C++
   -INVALID_DIRECTIVE           directive de compilation (au sein du fichier)
                                 incorrecte
   -PACKAGE_NO_LINK             le paquet ne sera pas ecrit sur le disque
                                 car l'option -J (Creation fichier .obj) est
                                 active
   -PACKAGED_THREADVAR          la variable threadvar d'un paquet exporte ne
                                 peut etre utilisee en dehors de ce paquet
   -IMPLICIT_IMPORT             unite implicitement importee par le paquet
   -HPPEMIT_IGNORED             HPPEMIT ignore. La directive HPPEMIT ajoute
                                 un symbole spcifi au fichier en-tte gnr
                                 pour C++.
   -NO_RETVAL                   la valeur de retour de la fonction peut etre
                                 indefinie
   -USE_BEFORE_DEF              la valeur n'a pas ete initialisee
   -FOR_LOOP_VAR_UNDEF          la variable de boucle for peut etre indefinie
                                 en sortie de boucle (ne prend pas
                                 obligatoirement la valeur de sortie)
   -UNIT_NAME_MISMATCH          l'identifiacteur d'unite ne correspond pas
                                 au nom du fichier
   -NO_CFG_FILE_FOUND           aucun fichier de configuration (.cfg) trouve
   -MESSAGE_DIRECTIVE           message utilisateur (??)
   -IMPLICIT_VARIANTS           utilisation implicite de l'unite variants
   -UNICODE_TO_LOCALE           erreur de conversion de caractere unicode en
                                 jeu de caracteres local
   -LOCALE_TO_UNICODE           erreur de conversion d'une chaine locale en
                                 unicode
   -IMAGEBASE_MULTIPLE          imagebase (-K<addr>) n'est pas un multiple
                                 de 64 Ko
   -SUSPICIOUS_TYPECAST         transtypage suspect
   -PRIVATE_PROPACCESSOR        la declaration de la propriete fait reference
                                 a un membre ancetre prive
   -UNSAFE_TYPE                 type non protege
   -UNSAFE_CODE                 code non protege
   -UNSAFE_CAST                 transtypage non protege



Options de dbogage Delphi

 Le compilateur possde deux ensembles d'options en ligne de commande
 permettant de gnrer des informations de dbogage externe: les options
 de fichier map et les options d'informations de dbogage.


-G  Options du fichier map

  L'option -G demande au compilateur en ligne de commande de gnrer un
  fichier .map montrant la structure du fichier excutable. A l'inverse du
  format binaire des fichiers excutable et .dcu, un fichier .map est un
  fichier texte lisible qui peut tre imprim ou charg dans l'diteur.
  L'option -G doit tre suivie d'une lettre S, P ou D indiquant le niveau
  d'information souhait dans le fichier .map. Un fichier .map est divis
  en trois sections :

  - Segment
  - Publics
  - Line Numbers

  '-GS' ne gnre que la section Segment, '-GP' gnre les sections Segment
  et Publics, et '-GD' gnre les trois sections. -GD gnre aussi un fichier
  .DRC qui contient les tables de toutes les constantes chane dclares en
  utilisant le mot rserv resourcestring. ( GS < GP < GD ).

  Pour les modules (programmes et units) compils en mode {$D+,L+}
  (mode par dfaut), la section Publics donne toutes les variables globales,
  les procdures et fonctions, et la section Line Numbers fournit les
  numros de ligne de toutes les procdures et fonctions du module.
  En mode {$D+,L-}, seuls les symboles dfinis dans la partie interface d'une
  unit sont prsents dans la section Publics. Pour les modules compils en
  mode {$D-}, la section Line Numbers n'est pas renseigne.


-V  Options d'informations de dbogage

  Les options -V (-V, -VN et -VR), qui forcent le compilateur  gnrer des
  informations de dbogage, peuvent tre combines sur la ligne de commande.

  -V : Option de gnration des informations du dbogueur externe
   Lorsque l'option -V est spcifie sur la ligne de commande, le
   compilateur ajoute  la fin du fichier excutable des informations de
   dbogage compatibles avec Turbo Debugger 5.0. Turbo Debugger dbogue
   aussi bien le source que le code machine et offre un systme de points
   d'arrt sophistiqu.
   La prsence des informations gnres par l'option -V augmente videmment
   la taille du fichier excutable, mais elle n'altre en rien les
   performances de celui-ci ni la quantit de mmoire dont il a besoin pour
   s'excuter.
   La prcision des informations ajoutes au fichier excutable dpend
   directement du positionnement des directives $D et $L dans chacun des
   modules (programmes et units) composant l'application. Pour les modules
   compils dans le mode par dfaut {$D+,$L+}, tous les symboles de
   constantes, variables, types, procdures et fonctions sont accessibles
   au dbogueur. En mode {$D+,$L-}, seuls les symboles dfinis dans la
   section interface d'une unit sont accessibles au dbogueur. Dans le
   mode {$D-}, aucun numro de ligne source n'tant gnr, le dbogueur ne
   peut pas afficher les lignes source lors du dbogage de l'application.

   Le dbogueur intgr  l'EDI n'utilise pas les informations de dbogage
   de Turbo Debugger. Comme la gnration de ces informations double les
   temps de compilation/liaison, il vaut mieux dsactiver cette option quand
   vous ne dboguez pas l'application avec Turbo Debugger.

  -VN : Option de gnration des informations de dbogage avec
   domaine d'appellation
   Lorsque vous spcifiez l'option -VN sur la ligne de commande, le
   compilateur gnre des informations de dbogage avec espace de nommage
   en format Giant utilises par le C++. Cela permet au compilateur C++ de
   trouver des symboles Pascal. Utilisez cette option lorsque vous compilez
   du code qui doit tre utilis par le compilateur C++.

  -VR : Option de gnration des informations des symboles de dbogage
   Lorsque vous spcifiez l'option -VR sur la ligne de commande, le
   compilateur gnre les informations des symboles de dbogage dans
   un fichier .rsm.
